package com.itheima.test;

import java.io.File;
import java.util.HashMap;



/**
 * @Author:gy
 * @Date: 2025/08/28 8:43
 * @Description:
 */
public class Demo {
    public static void main(String[] args) {
        //关联一个文件夹到File文件类上
        File file = new File("D:\\班级\\93期\\day10-IO\\测试");
        /*
        统计:count:已经需要统计什么
        当我们不知道统计什么的  用map: 键:后缀  值:出现的次数
        * */
        HashMap<String, Integer> hm = new HashMap<>();
        //因为文件夹下面可能还有文件夹  我们想到递归
        getCount(file,hm);
        System.out.println(hm);
    }

    private static void getCount(File file, HashMap<String, Integer> hm) {
        //统计一个文件夹里面出现的文件的后缀次数
        if(!file.exists()||file.isFile()||file==null){
            return;
        }
        //对文件夹进行遍历
        File[] files = file.listFiles();
        for (File f : files) {
            //f是遍历到的每个子文件
            if(f.isFile()){
                //获取后缀  存到map中
                String name = f.getName();//a.txt  b.word
                String[] split = name.split("\\.");
                //如果是正经文件   长度为2
                if (split.length==2){
                    //取出后缀
                    String houZhui = split[1];
                    if(hm.containsKey(houZhui)){
                        //已经存在了 取出value  + 1
                        Integer value = hm.get(houZhui);
                        hm.put(houZhui,++value);
                    }else{
                        //说明是第一次  直接存完事了
                        hm.put(houZhui,1);
                    }
                }
            }else{
                //文件夹
                getCount(f,hm);
            }
        }
    }
}
